package com.tomdd.service;

import com.tomdd.model.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tomdd.model.resp.Result;

import java.util.Map;

/**
 * @author zhongxu
 * @description 针对表【user(用户表)】的数据库操作Service
 * @createDate 2024-07-17 21:27:40
 */
public interface UserService extends IService<User> {
    /**
     * 根据用户名查找用户
     *
     * @param username 用户名
     * @return 对应用户名的用户对象
     */
    User findByUserName(String username);

    /**
     * 注册用户
     *
     * @param username 用户名
     * @param password 密码
     */
    Result register(String username, String password);

    /**
     * 用户登录
     *
     * @param username
     * @param password
     * @return
     */
    Result<String> login(String username, String password);

    /**
     * 更新头像
     *
     * @param avatarUrl 头像地址
     * @return 响应结果，更新成功返回Result.success()
     */
    Result updateAvatar(String avatarUrl);

    /**
     * 更新密码
     *
     * @param params key: old_pwd 旧密码; new_pwd 新密码; re_pwd 确认新密码
     * @param token  token
     * @return 更新成功返回Result.success() ; 反之返回Result.error()
     */
    Result updatePwd(Map<String, String> params, String token);
}
